Hive DDL

1 概览

除了SHOW PARTITIONS外,分区操作经常作为表操作的选项

2 关键字、保留关键字和未保留关键字

不同关键字在不同的版本中纳入,详见参考资料。

使用关键字作变量名有以下两种方式:

详见Supporting Quoted Identifiers in Column Names

3 数据库操作

1
2
3
4
5
6
7
8
9
## 创建数据库
## DATABASE和SCHEMA是同一事物
CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name
[COMMENT database_comment]
## 外部表默认目录
[LOCATION hdfs_path]
## 管理表默认目录,建议在metastore.warehouse.dir下的目录
[MANAGEDLOCATION hdfs_path]
[WITH DBPROPERTIES (property_name=property_value, ...)];

注意:管理表默认目录,建议在metastore.warehouse.dir下的目录,以使所有管理的表具有相同的根目录和管理策略。也可以设置metastore.warehouse.tenant.colocation

It can be used with metastore.warehouse.tenant.colocation to have it point to a directory outside the warehouse root directory to have a tenant based common root where quotas and other policies can be set.

1
DROP (DATABASE|SCHEMA) [IF EXISTS] database_name [RESTRICT|CASCADE];

注意:默认使用RESTRICT模式,即不能删除非空的表。

1
2
3
ALTER (DATABASE|SCHEMA) database_name SET LOCATION hdfs_path; -- (Note: Hive 2.2.1, 2.4.0 and later)

ALTER (DATABASE|SCHEMA) database_name SET MANAGEDLOCATION hdfs_path; -- (Note: Hive 4.0.0 and later)

注意:

设置存储位置只对新加入的表有效

其他数据库元数据不能修改

1
2
3
4
5
USE database_name;
## 使用默认数据库
default
## 查看当前数据库
SELECT current_database()

4 表操作

总结中。。。

5 行操作

6 视图操作

7 物化视图

8 索引操作

9 Macro

10 函数操作

11 角色和特权

12 其他操作

13 计划查询

14 HCatalog和WebHCat

参考资料

LanguageManual DDL